// 自己封装axios
import axios from 'axios'
import store from '@/store'
import router from '@/router'

// 可以创建多个 来调不同的接口
const request = axios.create({
  baseURL: 'http://www.liulongbin.top:3008'
})

// 请求拦截器
request.interceptors.request.use(function (config) {
  // 如果是/my开头的需要身份认证 添加请求头
  if (config.url.startsWith('/my')) {
    config.headers.Authorization = store.state.user.token
  }
  return config
}, function (error) {
  return Promise.reject(error)
})

// 响应拦截器
request.interceptors.response.use(function (response) {
  // 请求为2XX开头的 触发第一个回掉
  return response
}, function (error) {
  // 不是以2开头的触发这个回掉
  // 两个回掉只会触发一个
  if (error.response.status === 401) {
    // token 过期 删除无效token 跳转登陆页
    store.commit('user/updateToken', '')
    store.commit('user/updateUser', {})
    router.push('/login')
  }
  return Promise.reject(error)
})
export default request
